home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-04 / bipl.zip / PROCS.ZIP / HYPERBOL.ICN < prev    next >
Text File  |  1992-09-28  |  2KB  |  106 lines

  1. ############################################################################
  2. #
  3. #    File:     hyperbol.icn
  4. #
  5. #    Subject:  Procedures for hyperbolic functions
  6. #
  7. #    Author:   Ralph E. Griswold
  8. #
  9. #    Date:     January 1, 1992
  10. #
  11. ###########################################################################
  12. #
  13. #  These are the standard hyperbolic functions and their inverses.
  14. #
  15. ############################################################################
  16.  
  17. procedure sinh(r)
  18.    static e
  19.  
  20.    initial e := 2.71828183
  21.  
  22.    return (e ^ r - e ^ -r) / 2
  23.  
  24. end
  25.  
  26. procedure cosh(r)
  27.    static e
  28.  
  29.    initial e := 2.71828183
  30.  
  31.    return (e ^ r + e ^ -r) / 2
  32.  
  33. end
  34.  
  35. procedure tanh(r)
  36.    static e
  37.  
  38.    initial e := 2.71828183
  39.  
  40.    return (e ^ r - e ^ -r) / (e ^ r + e ^ -r)
  41.  
  42. end
  43.  
  44. procedure ctnh(r)
  45.    static e
  46.  
  47.    initial e := 2.71828183
  48.  
  49.    return (e ^ r + e ^ -r) / (e ^ r - e ^ -r)
  50.  
  51. end
  52.  
  53. procedure sech(r)
  54.    static e
  55.  
  56.    initial e := 2.71828183
  57.  
  58.    return 2 / (e ^ r + e ^ -r)
  59.  
  60. end
  61.  
  62. procedure csch(r)
  63.    static e
  64.  
  65.    initial e := 2.71828183
  66.  
  67.    return 2 / (e ^ r - e ^ -r)
  68.  
  69. end
  70.  
  71. procedure arcsinh(r)
  72.  
  73.    return log(r + sqrt(r ^ 2 + 1))
  74.  
  75. end
  76.  
  77. procedure arccosh(r)
  78.  
  79.    return log(r + sqrt(r ^ 2 - 1))
  80.  
  81. end
  82.  
  83. procedure arctanh(r)
  84.  
  85.    return 0.5 * log((1 + r) / (1 - r))
  86.  
  87. end
  88.  
  89. procedure arcctnh(r)
  90.  
  91.    return 0.5 * log((r + 1) / (r - 1))
  92.  
  93. end
  94.  
  95. procedure arcsech(r)
  96.  
  97.    return log((1 + sqrt(1 - r ^ 2)) / r)
  98.  
  99. end
  100.  
  101. procedure arccsch(r)
  102.  
  103.    return log((1 + sqrt(1 + r ^ 2)) / r)
  104.  
  105. end
  106.